package com.doyoulike.service.template;

import com.doyoulike.config.gen.GenTemplate;
import com.doyoulike.vo.out.GenData;
import com.doyoulike.vo.out.GeneratedContent;

import java.util.List;

/**
 * 模板引擎接口
 * 通过设计这样的一个接口，让我们的代码生成器可以使用不同的模板引擎
 * 只要模板引擎服务实现了这个接口
 */
public interface ITemplateEngineService {

    /**
     * 获取最终需要的文件内容（文件名、文件路径、文件内容）
     * 获取最终需要的文件内容，去除一些不必要的信息，保留最简洁，真正需要的东西
     *
     * @param basePath  文件路径
     * @param genData   生成数据
     * @param templates 模板列表
     */
    List<GeneratedContent> resolveTemplateContent(String basePath, GenData genData, List<GenTemplate> templates);

}
